<?php
/**
 * 用户购物地址管理
 */
namespace V3\Controller;

use Think\Controller;

class AddressesController extends ApiCommonController
{
    //获取全部地址
    public function getAll()
    {
        $user_id = trim(I('get.user_id'));
        if($user_id){
                $where['user_id']=$user_id;
                $where['status']='1';
                $addData = M('Addresses')
                    ->where($where)
                    ->field('id,name,contact_info,default_status,addresses')
                    ->order('last_update_time desc')
                    ->select();
                if($addData){
                    $return_data['status']='1';
                    $return_data['info']='成功!';
                    $return_data['data']=$addData;
                }else{
                    $return_data['status']='1';
                    $return_data['info']='结果为空!';
                    $return_data['data']=array();
                }
            }else{
                $return_data['status']='2';
                $return_data['info']='参数不足!';
            }
            $this->ajaxReturn($return_data);
    }

    //获取默认地址
    public function getDefault()
    {
        $user_id = trim(I('get.user_id'));
        if($user_id){
            $where['user_id']=$user_id;
            $where['status']='1';
            $where['default_status']='1';
            $addData = M('Addresses')
                ->where($where)
                ->field('id,name,contact_info,default_status,addresses')
                ->order('last_update_time desc')
                ->select();
            if($addData){
                $return_data['status']='1';
                $return_data['info']='成功!';
                $return_data['data']=$addData;
            }else{
                $return_data['status']='2';
                $return_data['info']='未设置默认值!';
                $return_data['data']=array();
            }
        }else{
            $return_data['status']='2';
            $return_data['info']='参数不足!';
        }
        $this->ajaxReturn($return_data);
    }

    //添加地址
    public function add()
    {
        $data['user_id'] = trim(I('post.user_id'));
        $data['name']= trim(I('post.name'));
        $data['contact_info']= trim(I('post.contact_info'));
        $data['addresses']= trim(I('post.addresses'));

        if(!in_array('',$data)){
            $defaultData = M('Addresses')->where('default_status = 1 and user_id='.$data['user_id'])->find();
            if($defaultData){
                $data['default_status']=2;
            }else{
                $data['default_status']=1;
            }

            $data['create_time']=time();
            $data['last_update_time']=time();

            $re=M('Addresses')->add($data);

            if($re){
                $return_data['status']='1';
                $return_data['info']='成功!';
            }else{
                $return_data['status']='2';
                $return_data['info']='失败!';
            }
        }else{
            $return_data['status']='2';
            $return_data['info']='参数不足!';
        }
        $this->ajaxReturn($return_data);

    }

    //修改地址
    public function edit()
    {

        $data['id'] = trim(I('post.id'));
        $data['user_id'] = I('post.user_id');

        $user_id = M('Addresses')->getFieldById($data['id'],'user_id');

        if($data['user_id'] == $user_id){
            $data['name']= trim(I('post.name'));
            $data['contact_info']= trim(I('post.contact_info'));
            $data['addresses']= trim(I('post.addresses'));

            if(!in_array('',$data)){

                $data['last_update_time']=time();

                $re=M('Addresses')->save($data);

                if($re){
                    $return_data['status']='1';
                    $return_data['info']='成功!';
                }else{
                    $return_data['status']='2';
                    $return_data['info']='失败!';
                }
            }else{
                $return_data['status']='2';
                $return_data['info']='参数不足!';
            }
        }else{
            $return_data['status']='2';
            $return_data['info']='未知错误!';
        }

        $this->ajaxReturn($return_data);

    }

    //删除地址
    public function del()
    {
        $data['id'] = trim(I('post.id'));
        $data['user_id'] = I('post.user_id');

        $user_id = M('Addresses')->getFieldById($data['id'],'user_id');

        if($data['user_id'] == $user_id){

                $data['status'] =2;
                $data['last_update_time']=time();

                $re=M('Addresses')->save($data);

                if($re){
                    $return_data['status']='1';
                    $return_data['info']='成功!';
                }else{
                    $return_data['status']='2';
                    $return_data['info']='失败!';
                }

        }else{
            $return_data['status']='2';
            $return_data['info']='未知错误!';
        }

        $this->ajaxReturn($return_data);
    }

    //设置默认地址
    public function setDefault()
    {
        $data['id'] = trim(I('post.id'));
        $data['user_id'] = I('post.user_id');

        $user_id = M('Addresses')->getFieldById($data['id'],'user_id');

        if($data['user_id'] == $user_id){

            $where['user_id']=$data['user_id'];
            $saveData['default_status']=2;

            $model = M('Addresses');
            $model->startTrans();
            $saveRe = $model->where($where)->field('default_status')->save($saveData);
            if($saveRe){
                $data['default_status'] =1;

                $re=M('Addresses')->save($data);

                if($re){
                    $model->commit();
                    $return_data['status']='1';
                    $return_data['info']='成功!';
                }else{
                    $model->rollback();
                    $return_data['status']='2';
                    $return_data['info']='失败!';
                }
            }else{
                $return_data['status']='2';
                $return_data['info']='失败!';
            }
        }else{
            $return_data['status']='2';
            $return_data['info']='未知错误!';
        }

        $this->ajaxReturn($return_data);
    }

}